1. Field of the Invention
The embodiments of the invention generally relate to an enterprise service bus (ESB) runtime system and, more particularly, to an adaptive ESB runtime system that builds only the most advantageous configuration.
2. Description of the Related Art
Within conventional enterprise service bus (ESB) architectures, a bus provides the physical connections that allow communication between various applications and/or between primitives (i.e., nodes or elements) within an application and an enterprise service bus (ESB) provides the software infrastructure that enables such between-application or within-application communications. An ESB runtime system typically has two construction stages. The first construction stage is a tooling or design stage. Specifically, during this tooling stage, a net of composable units (e.g., applications, primitives within applications, etc.) are wired together by paths (i.e., mediation flows) in a model in order to form an overall flow that conceptually describes the particular function of the ESB runtime system. A natural consequence of this tooling stage is that each path between composable units may include a number of different branches (or different routes). The tooling stage can be accomplished, for example, using an integration developer (e.g., WebSphere® Integration Developer software by International Business Machines Corp. (IBM)).
The second construction stage is a path building stage (i.e., a stage wherein executable instantiations of the tooled paths and branches thereof are rendered into the ESB runtime system). Typically, this path building process is repeated at the start of each running of the runtime system and includes the simultaneous building of each particular path and each branch within each particular path. Alternatively, only some branches of each path will be conditionally built, based upon some runtime context. This submission hinges on the conditional aspects of some paths. The path building stage can be accomplished, for example, using a runtime environment building product (e.g., WebSphere® ESB software by International Business Machines Corp. (IBM)).
The path building stage (i.e., the generation of the runtime components for each path and each branch within each path) may be very costly. Furthermore, different branches in a particular path may be more costly to create than others. For example, in a particular path, a particular branch may require the transformation of data using extensible stylesheet language transformations (xslt) and, thus, may be relatively costly to set up, especially if the xslt is large. Additionally, if the particular branch is used infrequently (i.e., has minimal operational usefulness), the costly initialization of that particular branch may outweigh its operational usefulness. It would be advantageous to provide an ESB runtime system that does not initialize all branches equally at runtime, but rather considers which paths and branches thereof would be most advantageous (e.g., given a cost-benefit analysis) to build.